与Matlab类似,R同样有一个非常强大的矩阵运算方式。R中常用的矩阵运算函数或运算符总结如下,其中A和B是矩阵(matrix),x和b是向量(vector)
函数或运算符 | 功能 |
A * B | 矩阵对应项相乘 |
A %*% B | 矩阵相乘 |
A %o% B | 矩阵转置相乘AB’ |
crossprod(A,B) crossprod(A) |
矩阵转置相乘A’B 和 A’A ,效率更高。 |
t(A) | 矩阵转置 |
diag(x) | 使用主对角线中的x创建对角矩阵 |
diag(A) | 返回包含主对角线元素的向量 |
diag(k) | k是标量,则创建k×k单位矩阵 |
solve(A, b) | 求解 公式 b = Ax,得到向量x(即A-1b) |
solve(A) | A是方阵则返回A的逆矩阵 |
ginv(A) | A的Moore-Penrose广义逆矩阵,需要加载 MASS包 |
y<-eigen(A) | y$val 返回 A的特征值 y$vec 返回 A的特征向量 |
y<-svd(A) | A的矩阵奇异值分解(SVD) y$d 包含A的奇异值的向量 y$u 列中包含 A的左奇异向量的矩阵 y$v列中包含 A的右奇异向量的矩阵 |
R <- chol(A) | A的Cholesky分解返回上三角矩阵R’R = A |
y <- qr(A) | A的QR(正交三角)分解 y$qr 分解后的一个正规正交矩阵Q与上三角矩阵 y$rank A的秩 y$qraux 包含Q额外信息的向量 y$pivot 包含主元(pivot)的信息 |
cbind(A,B,…) | 按列组合矩阵(或向量),返回一个矩阵 |
rbind(A,B,…) | 按行组合矩阵(或向量),返回一个矩阵 |
rowMeans(A) | 返回行平均值的向量 |
rowSums(A) | 返回对行求和的向量 |
colMeans(A) | 返回列平均值的向量 |
colSums(A) | 返回对列求和的向量 |
评论